package com.gestion.controlador;

import com.gestion.modelo.LoginModelo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import vista.JFLogin;

/**
 * @author Mauri@<itsoluciones.com.ar>
 */
public class LoginControlador {

    private LoginModelo loginModelo;
    private JFLogin jFLogin;

    //<editor-fold defaultstate="collapsed" desc="Contructor que recibe información de USUARIO y la Interfaz GUI">
    /**
     * Constructor para utilizar con la vista de Login
     *
     * @param login Modelo
     * @param jFLogin vista gui
     */
    public LoginControlador(LoginModelo login, final JFLogin jFLogin) {
        this.loginModelo = login;
        this.jFLogin = jFLogin;
//agregamos un actionListener para responder a eventos que necesitamos
        this.jFLogin.agregarLoginListener(new ActionListener() {
//agregamos un escuchador que va a avisar y luego vamos a enviar lo que necesitamos hacer.
            @Override
            public void actionPerformed(ActionEvent e) {
                //"Si el Usuario es Válido"
                boolean result = loginModelo.validarUsuario(jFLogin.getNombreUsuario(), jFLogin.getPassword());
                if (result) {
                    MenuControlador.invocarVista();
                    jFLogin.dispose();
                }
            }
        });

    }
    //</editor-fold>

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Crea y muestra el formulario
         */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                //System.out.println(this.toString());
                // "Modelo"
                LoginModelo loginModelo = new LoginModelo();//tiene el USUARIO y la forma de validarlo
                // "Ventana"
                JFLogin jFLogin = new JFLogin();//intefaz para logueo de USUARIO

                LoginControlador loginControlador = new LoginControlador(loginModelo, jFLogin);//agregamos conocimiento al controlador de las anteriores

                jFLogin.setVisible(true);//hacemos visible el Formulario para logueo

            }
        });
    }
}
